This note is a summary of original link
I self-publish my own book
Inception
In an event, discussing how to make Scala more friendly for beginners.
Why a Book?
A hole in how to combine Scala libraries (individually well-documented).
Planning
Writing a book on top of that work would prove to be incredibly exhausting.
- a year to write the book
- rough table of contents and chapters
- write each chapter and post them in a blog for free
- iterate each chapter and combine together into a book
- edit, review and publish
Writing
The Table of Contents
Basic skeleton. 18 short chapters. This table of contents evolved significantly as the book was developed, but once I had it, the time came to fill it in.
Blogging
- write as many chapters I could as standalone blog posts
- publishing a new post is motivating in a way that writing in private is not
- build an audience on my blog
Completion of First Draft
- multiple rounds of chapter-level self-editing
- some chapters where gone, added others
Editing and Reviews
Self review
In one month, 3 reviews. Exhausting. Review process: print out the whole book on paper, read through it and mark it up with a colored pen, and then perform the edits as a separate pass.
External review
- two waves: one starting January 2020, one starting April 2020, with about 10 reviewers in each batch
- wide diversity of reviewers was a great boon
- The entire process was pretty informal: I emailed each reviewer a PDF, and they would email me back feedback as they made their way through it. Feedback was in whatever format they were comfortable with: bullet points in an email, attached markdown files, annotated PDFs, whatever.
Review feedback
Countless low-level fixes that went into the book during review (self and external): typos, English improvements, and so on. But perhaps the most interesting thing to discuss here is the high-level feedback I received, and the high-level changes I made.
At this point, you can see the structure is greatly improved. Where previously the chapter sizes varied wildly, now they are all very even at around 20 pages a piece. Now, related chapters are all grouped together in a much more sensible way.
Build Pipeline
- build a pipeline that would turn my input markdown files into static HTML web pages, and finally into print-ready PDFs
- https://github.com/handsonscala/build
- ... (the author gives a lot of detail about problems generating the book)
Code Examples and Exercises
(the author gives a lot of detail about how code examples are generated)
Website and Online Resources
- https://www.handsonscala.com/
- discussion: Each chapter gets one issue at https://github.com/handsonscala/handsonscala/issues
Launch
Digital and Physical Sales Channels
- nice cover image made by someone on Fiverr
- put the PDFs up for sale on Gumroad
- put the print-copy up for sale by uploading the print-ready PDFs to IngramSpark: *it took me about 10 iterations of ordering a preview copy and fixing bugs before I hit "publish"
Marketing
- Going viral https://news.ycombinator.com/item?id=22914610
- I gathered the emails of interested parties on my blog's mailing list
- word of mouth: I did not do any paid marketing to promote my book.
Conclusion
- enormous amount of work
- take about half that time to write and half that time to edit
TOC
- Inception
- [Writing](#writinghttpswwwlihaoyicomposthowiselfpublishedmyfirsttechnicalbookhtml%23writing)
- Editing and Reviews
- Build Pipeline
- Launch
- Conclusion